#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<string.h>


void Print(int* a, int n);
void InsertSort(int* a, int n);
void ShellSort(int* a, int n);
void SelectSort(int* a, int n);
void HeapSort(int* a, int n);
void BubbleSort(int* a, int n);
void QuickSort1(int* a, int left, int right);
void QuickSort2(int* a, int left, int right);
void QuickSort3(int* a, int left, int right);
int PartSort1(int* a, int left, int right);
void QuickSort(int* a, int left, int right);
void QuickSortNon(int* a, int left, int right);
void MergeSort(int* a, int n);
void _MergeSort(int* a, int begin, int end, int* temp);

